package ar.com.logic.components.strategy;

import java.util.List;
import java.util.Random;

import ar.com.logic.components.Numero;
import ar.com.logic.components.interfaces.IHistoricoRespuestas;
import ar.com.logic.components.interfaces.IMatrizPosiciones;
import ar.com.logic.evaluador.Respuesta;

public class EstrategiaInicial extends Estrategia {

	public EstrategiaInicial(IMatrizPosiciones matriz,
			IHistoricoRespuestas historico) {
		super(matriz, historico);

	}

	public Numero getSiguienteNumero() {
		return generarNumeroRandom();
	}

	public String getNombre() {

		return IEstrategia.INICIAL;
	}

	private Numero generarNumeroRandom() {

		Numero n = new Numero();
		Random rand = new Random();

		List<Integer> sinUso = historicoRespuestas.getNumerosNoUtilizados();
		Respuesta r = historicoRespuestas.obtenerUltimaRespuesta();
		for (int i = 1; i <= matriz.getMaxPosiciones(); i++) {
			if (sinUso.size() >= i) {
				n.agregarDigito(sinUso.get(i - 1));
			} else {
				r.getNumero().getNumero().get(i);
			}
		}

		return n;
	}

	@Override
	public boolean esCondicionEsperada(IMatrizPosiciones matriz,
			IHistoricoRespuestas historico) {
		// TODO Auto-generated method stub
		return historico.getUltimoTurno() < 2;
	}
	
	




}
